package com.mofang.ticketing.common.core.enums.account;

import com.mofang.ticketing.common.core.enums.EnumVO;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 角色类型 1=平台管理员、2=商户管理员、3=商户成员、4=项目成员
 *
 * @author LGC
 */
@Getter
@AllArgsConstructor
public enum RoleTypeEnum {
    /**
     * 角色类型 1=平台管理员、2=商户管理员、3=商户成员、4=项目成员
     */
    PLATFORM_ADMIN(1, "平台管理员", "platform_admin", ""),
    MERCHANT_ADMIN(2, "商户管理员", "merchant_admin", ""),
    MERCHANT_MEMBER(3, "商户成员", "", ""),
    PROJECT_MEMBER(4, "项目成员", "project_member", ""),

    ;

    private final Integer key;
    private final String value;
    private final String roleCode;
    private final String authority;

    public static String getValueByKey(Integer key) {
        for (RoleTypeEnum h : RoleTypeEnum.values()) {
            if (h.getKey().equals(key)) {
                return h.getValue();
            }
        }
        return null;
    }

    public static String getAuthorityByCode(Integer key) {
        for (RoleTypeEnum h : RoleTypeEnum.values()) {
            if (h.getRoleCode().equals(key)) {
                return h.getAuthority();
            }
        }
        return null;
    }

    public static List<EnumVO> getKeyValueList() {
        return Arrays.stream(RoleTypeEnum.values()).map(s ->
                new EnumVO(s.getKey(), s.getValue())).collect(Collectors.toList());
    }


}
